The present invention relates to the field of signal processing. More particularly, this invention relates to a method and apparatus for controlling signal processing parameters in a processor-implemented modem data pump.
Modems are used by computers to transmit and receive data via telephone lines. Unfortunately, the data rate that can be achieved via telephone line is relatively low and often becomes a performance-limiting bottleneck. For this reason, modern modems commonly perform sophisticated telephone line compensation and data encoding functions in order to maximize data transmission and reception rates across a given telephone line.
The portion of a modem that actually generates outgoing analog waveforms and interprets incoming analog waveforms is called a modem xe2x80x9cdata pumpxe2x80x9d. While some modems include an additional processing unit to carry out high-level error correction and data compression algorithms, the modem data pump is the unit primarily responsible for compensating telephone line impairments and performing low-level signal encoding and decoding.
Prior-art modem data pumps commonly include a processor, such as a digital signal processor (DSP), a non-volatile storage device to hold a modem data pump program, and an operating memory to hold intermediate computational results. The operating memory is also used to hold modem data pump parameters that specify, for example, data transmission and reception rates, line compensation values and signal encoding/decoding schemes.
A number of modem data pump parameters significantly affect the work-load of the processor used to implement the modem data pump. The symbol rate parameter, for example, specifies the number of symbols the modem data pump is to transmit and receive per second. Because signal reception involves sampling the incoming analog signal at least twice the symbol rate, the sampling rate of the modem data pump and therefore the loading of the modem data pump processor increases in proportion to the symbol rate parameter. Because the modem data pump processor has a finite instruction execution bandwidth (processor bandwidth is often specified in terms of millions of instructions per second (MIPS)), the symbol rate may not be increased beyond the processor""s capacity. However, the symbol rate is usually constrained by telephone line bandwidth and not processor capacity.
The carrier frequency determines the frequency of the carrier that is generated by the modem data pump and also places varying demands on processor bandwidth. The sampling rate of the modem data pump also increases as the carrier frequency increases.
The equalizer length is another parameter that affects modem data pump processor loading. The equalizer length indicates the amount of signal processing required to compensate an incoming signal for frequency response deficiency in the telephone line. A longer equalizer length requires more signal processing than a shorter equalizer length and therefore consumes more processor bandwidth.
The equalizer length is determined in an operation called a xe2x80x9cmodem training sequencexe2x80x9d that occurs when a connection between two modems is first established. In a modem training sequence, each modem outputs a signal having agreed upon characteristics. These signals are detected at the respective receivers of the modems and are used by each modem to model the frequency response of the telephone line. Based on the telephone line model, a maximum symbol rate will be selected and an equalizer length is determined. Generally, higher symbol rates require longer equalizers.
Another parameter that affects modem data pump processor loading is a parameter that specifies the length of an echo canceler. An echo canceler subtracts a signal that is subtracted from the received signal to compensate for reflections of the transmitted signal. During the modem training sequence, each modem detects the reflection, if any, of signals that it transmits. The reflection, or echo, is transient and can be compensated for in the receiver by processing the incoming signal to cancel the echo from the transmitter. The echo canceler is typically specified as having a temporal length which corresponds to the duration of the echo. The longer and more resolute the echo canceler, the greater the amount of processor MIPS consumed.
Precoding is another signal processing technique used to increase transmission bit-rate, but which consumes processor MIPS. Precoding is a technique for introducing inter-symbol interference (ISI) in a controlled way so that it can be canceled by receiver logic. When precoding is enabled, processor bandwidth must be consumed to generate the ISI cancellation signal and process the signal in the receiver.
Trellis coding is yet another signal processing technique used to increase transmission bit-rate at the expense of processor bandwidth. When trellis coding is enabled, redundant points in a multi-symbol quadrature amplitude modulation (QAM) constellation are used to perform forward error correction. In essence, redundant points are encoded in a particular sequence that can be detected by the receiver and used to confirm signal integrity.
In prior-art modem data pump implementations, the modem data pump parameters are selected to maximize data transmission and reception rates based on telephone line quality. Processor bandwidth is used to the full extent necessary to perform the processing indicated by the modem data pump parameters.
In modems having a data pump processor dedicated to performing data pump operations, selecting data pump parameters to achieve a maximum possible data rate is usually acceptable. However, the modern trend is to have the computer""s host processor perform modem data pump processing instead of using a dedicated modem data pump processor. When the host processor performs data pump processing, the modem is referred to as a xe2x80x9csoft modemxe2x80x9d, and the host processor is typically multitasked between performing modem data pump functions and other tasks.
The prior art technique of selecting data pump parameters to achieve maximum data rate can adversely affect system performance whenever the processor which implements the modem data pump is assigned multiple processing tasks. Depending on the bandwidth of the processor and the number of tasks the processor is required to concurrently execute, there may not be enough processor bandwidth to adequately perform all tasks if too much processor bandwidth is consumed implementing the modem data pump.
A method and apparatus for controlling modem data pump parameters based on processor loading is disclosed. A first set of modem data pump parameters is generated based on characteristics of a telephone line and used to achieve a first data reception bit-rate in a modem data pump. A change in work-load is detected for a processor used to implement the modem data pump. A second set of modem data pump parameters is generated in response to the change in work-load of the processor used to implement the modem data pump, and a second data reception bit-rate is achieved in the modem data pump using the second set of modem data pump parameters.